#ifndef _CAMARA_H_
#define _CAMARA_H_

#include <GL/glut.h>
// posiciones inciales de la camara
#define EYE_0 20.0
#define EYE_1 20.0
#define EYE_2 10.0
// largo del vector en XYZ a la camara raiz(800)
#define DIST_XYZ 30

#define CENTRE_0 0.0
#define CENTRE_1 0.0
#define CENTRE_2 10.0

#define UP_0 0.0
#define UP_1 0.0
#define UP_2 1.0

class Camara
{
private:
	// Coordenadas de la camara
	GLdouble eye[3];
	GLdouble centre[3];
	GLdouble up[3];
public:
	Camara(void);

	void lookat();

	// setters de las coordenadas
	void setEye(GLdouble x,GLdouble y,GLdouble z);

	void setCentre(GLdouble x,GLdouble y,GLdouble z);

	void setUp(GLdouble x,GLdouble y,GLdouble z);

	void incEye(GLdouble x,GLdouble y,GLdouble z);

	void incCentre(GLdouble x,GLdouble y,GLdouble z);

	void incUp(GLdouble x,GLdouble y,GLdouble z);

	GLdouble getEye(int i);

	GLdouble getCentre(int i);

	virtual ~Camara(void);
};

#endif
